﻿using System.ServiceModel;

namespace SharePointUtilitiesForDevelopers.Service
{
    /// <summary>
    /// Defines the interface for a class that creates an instance of a specific type of soap client.
    /// </summary>
    /// <typeparam name="TSoapClient">The type of the SOAP client.</typeparam>
    /// <typeparam name="TChannel">The type of the channel.</typeparam>
    internal interface ISharePointServiceClientFactory<TSoapClient, TChannel>
        where TSoapClient : ClientBase<TChannel>
        where TChannel : class
    {
        /// <summary>
        /// Creates a soap client instance.
        /// </summary>
        /// <param name="siteUrl">The site URL.</param>
        /// <returns>A soap client instance.</returns>
        TSoapClient CreateInstance(string siteUrl);
    }
}
